/**
 * 
 */
package com.dlg.user.rpc.api.user;

import com.dlg.user.rpc.api.vo.user.UserMessageRpcVo;

import java.io.Serializable;
import java.math.BigInteger;
import java.util.List;

/**
 * 用户消息rpc服务
 * @author lhh@gongren.com
 * @sine 2017年3月27日 下午7:58:03
 */
public interface IUserMessageRpcService extends Serializable{
	
	/**
	 * 查询用户的未读消息
	 * 
	 * @author lhh@gongren.com
	 * @since 2017年4月1日 上午9:47:49
	 * @param userId
	 * @return
	 */
	public Long queryMessageNoReadCount(BigInteger userId) ;
	
	
	/**
	 * 添加用户消息
	 * 
	 * @author lhh@gongren.com
	 * @since 2017年3月30日 上午9:35:51
	 * @param userMessageRpcVo
	 * @return
	 */
	public BigInteger addUserMessage(UserMessageRpcVo userMessageRpcVo);
	
	/**
	 * 查询用户消息详情
	 * 
	 * @author lhh@gongren.com
	 * @since 2017年3月30日 下午4:13:11
	 * @param userId
	 * @param id
	 * @return
	 */
	public UserMessageRpcVo queryMessage(BigInteger userId, BigInteger id);

	/**
	 * 根据接收人编号、是否阅读、条数和minId查询消息列表
	 *
	 * @author lhh@gongren.com
	 * @since 2017年3月30日 下午4:13:21
	 * @param userId
	 * @param isRead
	 * @param size
	 * @param minId
	 * @return
	 */
	public List<UserMessageRpcVo> queryMessagePage(BigInteger userId, Short isRead, Short type, int size, BigInteger minId);

	/**
	 * 更新用户消息
	 *
	 * @author lhh@gongren.com
	 * @since 2017年3月30日 下午4:13:29
	 * @param userId
	 * @param id
	 * @param isRead
	 * @return
	 */
	public Long updateMessage(BigInteger userId, BigInteger id, Short isRead, Short messageType);

	/**
	 * 删除用户消息
	 *
	 * @author lhh@gongren.com
	 * @since 2017年3月30日 下午4:13:40
	 * @param userId
	 * @param id
	 * @return
	 */
	public Long deleteUserMessage(BigInteger userId, BigInteger id);
	
}
